#ifndef __HEXFile__
#define __HEXFile__

#include <stdint.h>
#include <string>

typedef struct
{
	

} HEXLine, *pHEXLine;

enum {
    HEX_STATUS_OK,
    HEX_STATUS_FILENOTFOUND,
    HEX_STATUS_FILEIOERROR
};

class HEXFile
{
	public:
		HEXFile();
		~HEXFile();
		std::string GetStatusMessage(void);
		
		const int32_t& GetStatus() const { return Status; }
		const uint32_t& GetNLines() const {	return nLines; }
		const uint32_t& GetFileSize() const { return filesize; }
		
		std::string GetFileName() { return filename; }
		char* 		szGetFileName() { return (char*)filename.c_str(); } 
		
	private:
		std::string filename;
		uint32_t 	filesize;
		uint32_t	nLines;
		HEXLine* 	Lines;

		int32_t 	Status;
		void 		LoadHEX( const char* filename );
		void		LoadHEX( const std::string filename );
		
		void		Init(void);
};

#endif // __HEXFile__
